package com.lei.service.impl;

import com.lei.dao.TypeDao;
import com.lei.dao.impl.TypeDaoImpl;
import com.lei.entity.Type;
import com.lei.service.TypeService;
import com.lei.util.PageBean;

import java.util.List;
import java.util.Map;

/**
 * @author Lei Chu
 * @Date 2020/10/21 17:20
 */
public class TypeServiceImpl  implements TypeService {

    private final TypeDao typeDao = new TypeDaoImpl();

    @Override
    public List<Map> getAllType() {
        return typeDao.getAllType();
    }

    @Override
    public PageBean getAllTypeByPage(Type type) {
        PageBean<Type> page = new PageBean<>();
        long count = typeDao.getCount(type);
        if (count>0){
            page.setCount(count);
            List<Type> list = typeDao.getAllTypeByPage(type);
            page.setData(list);
        }
        return page;
    }

    @Override
    public int addType(Type type) {
        if (type.getTypeid()!=null){
            return typeDao.updateType(type);
        }
        return typeDao.addType(type);
    }

    @Override
    public String checkName(Type type) {
        Integer result = typeDao.getIdByName(type.getTypename());
        if (result!=null && !result.equals(type.getTypeid())){
            // 根据名字查到了Id，并且查到的Id和传过来的Id不相等， 返回 0 表示这个名字不可用
            return "0";
        }
        //返回 1 表示这个名字可用
        return "1";
    }

    @Override
    public int deleteType(String typeid) {
        return typeDao.deleteType(typeid);
    }

    @Override
    public List<Map> getAllTypeAndBookCount() {
        return typeDao.getAllTypeAndBookCount();
    }
}
